#ifndef PLUGIN_H
#define PLUGIN_H
#include "ExportDefine.h"
class EXPORT IPlugin 
{
public:
    virtual ~IPlugin() {}

    // Get the name of the plugin. 
    virtual const char * GetName() const = 0;

    // Perform the plugin initial installation sequence. 
    virtual void install() = 0;

    // Perform any tasks the plugin needs to perform on full system initialization.
    virtual void initialise() = 0;

    // Perform any tasks the plugin needs to perform when the system is shut down.
    virtual void shutdown() = 0;

    // Perform the final plugin uninstallation sequence. 
    virtual void uninstall() = 0;
};
#endif